延續昨天沒說到的架構,這邊跟各位稍微介紹Kubernetes的架構以及配置。
Container Network Interface (CNI) 是一套規範,用來處理容器本身的網路設定,至於要提供什麼樣的網路能力本身並沒有定義,而是根據不同的 CNI 實現自行決定,根據不同的情境與設定來提供不同的功能與效果。
最基本的CNI Plugin 有
1.bridge
2.host-device
3.ipvlan
4.macvlan...
這些都是我們在container上所能實現的網路模式。
這邊就介紹一下兩個常見的CNI Plugin,flannel是最常見也是最多人使用的CNI,如果沒特殊情境需求就使用這個CNI Plugin,它的功能很簡單就是只有提供overlay network ,使的跨節點的容器能夠進行溝通。
Calico 建立一個扁平化的三層網絡,每個容器會分配一個可路由的IP。由於通訊時不需要解封裝和封裝,網路效能的消耗比較小,它的特性就是容易排查問題與水平擴展,他還提供可以設定ACL的功能。
Weave Net 它提供的模式和我們目前為止討論的所有網路方案都不同。Weave在叢集中的每個節點之間建立網狀overlay網路,如果希望網路功能很多元,同時希望不要增加大量複雜性或管理難度的人來說,可以使用這個CNI。